home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 1998 August / PC Plus SuperCD 50b Issue 142 (CD142b) (August 1998).iso / handson / CPPBuild / STEP2 / XLIST.CPP < prev    next >
Encoding:
C/C++ Source or Header  |  1998-05-08  |  770 b   |  49 lines

  1. //---------------------------------------------------------------------------
  2. #include <vcl\vcl.h>
  3. #pragma hdrstop
  4.  
  5. #include "xlist.h"
  6. //---------------------------------------------------------------------------
  7. Xlist::Xlist() {
  8.   flink = this;
  9.   blink = this;
  10. }
  11.  
  12. void Xlist::Add(Xlist *p) {
  13.   Xlist * t;
  14.  
  15.     t =flink;
  16.     p->flink = flink;
  17.     flink=p;
  18.     t->blink=p;
  19.     p->blink = this;
  20.  }
  21.  
  22. Xlist* Xlist::Remove(){
  23.   Xlist *u, *t = flink;
  24.  
  25.   if (flink != t->flink) {
  26.     u = t->flink;
  27.     flink = u;
  28.     u->blink = this;
  29.     t->flink = t;
  30.     t->blink = t;
  31.     }
  32.   else
  33.      t = NULL;
  34.  
  35.   return t;
  36. }
  37.  
  38. int Xlist::Count() {
  39.   int i = 0;
  40.   Xlist *p = flink;
  41.  
  42.   while (flink != p->flink) {
  43.     p = p->flink;
  44.     i++;
  45.     }
  46.   return i;
  47. }
  48.  
  49.